In distributed systems developed using object-oriented programming (commonly referred to as distributed object systems) it may not always be sufficient to have a single copy of an object for the distributed system. An object may be stored in multiple databases simultaneously. For example, there may be a period of time where a legacy system is being replaced by a new system. In such a case, separate copies of the same object may be stored in both the old database and a new database. As another example, one may want to have multiple copies of a particular object for business reasons. For example, each branch office of a business may want to have a copy of objects representing a customer account but a copy of all accounts from all branch offices might be maintained in a database at the headquarters of the business.
Unfortunately, particular distributed objects in a distributed system may be maintained in varying numbers of databases. For example, one type of object might be maintained in three different databases while another type of object might be maintained in five different databases. The disparate number of databases associated with various distributed objects raises implementation issues regarding operations to be performed on copies of the distributed objects. It would be desirable if the methods used to perform operations on various objects would be the same no matter how many copies of the distributed object existed in the distributed system.